﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace ivvIncorporadora
{
    public partial class editarIvvResidencial1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["codigoUsuario"] == null)
            {
                ScriptManager.RegisterStartupScript(this.Page, GetType(), "Alerta", "alert('A sessão foi expirada por motivos de segurança. Acesse o sistema novamente.'); window.opener.location.href = '" + Request.ApplicationPath + "Default.aspx'; window.close();", true);
            }
            if (!Page.IsPostBack)
            {
                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                string selectBairro = "select * from bairro order by descricaoBairro";

                SqlCommand cmd = new SqlCommand(selectBairro, sqlc);
                SqlDataReader dr = cmd.ExecuteReader();

                ListItem bairro = new ListItem();
                bairro.Value = "0";
                bairro.Text = "Selecione um bairro";

                lstBairroResidencial1.Items.Add(bairro);

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        ListItem bairros = new ListItem();
                        bairros.Value = dr["codigoBairro"].ToString();
                        bairros.Text = dr["descricaoBairro"].ToString();

                        lstBairroResidencial1.Items.Add(bairros);
                    }
                }

                dr.Close();

                string selectEstagioObra = "SELECT * FROM estagioObra ORDER BY descricaoEstagioObra";

                cmd = new SqlCommand(selectEstagioObra, sqlc);
                dr = cmd.ExecuteReader();

                ListItem estagioObra = new ListItem();
                estagioObra.Value = "0";
                estagioObra.Text = "Selecione um estágio da obra";

                lstEstagioObra1.Items.Add(estagioObra);

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        ListItem estagioObras = new ListItem();
                        estagioObras.Value = dr["codigoEstagioObra"].ToString();
                        estagioObras.Text = dr["descricaoEstagioObra"].ToString();

                        lstEstagioObra1.Items.Add(estagioObras);
                    }
                }

                dr.Close();

                string selectOrigemRecurso = "SELECT * FROM origemRecurso ORDER BY descricaoOrigemRecurso";

                cmd = new SqlCommand(selectOrigemRecurso, sqlc);
                dr = cmd.ExecuteReader();

                ListItem origemRecurso = new ListItem();
                origemRecurso.Value = "0";
                origemRecurso.Text = "Selecione uma origem de recurso";

                lstOrigemRecurso1.Items.Add(origemRecurso);

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        ListItem origemRecursos = new ListItem();
                        origemRecursos.Value = dr["codigoOrigemRecurso"].ToString();
                        origemRecursos.Text = dr["descricaoOrigemRecurso"].ToString();

                        lstOrigemRecurso1.Items.Add(origemRecursos);
                    }
                }

                dr.Close();

                string dadosEditar = "";

                dadosEditar += "SELECT codigoIvv, anoIvv, mesIvv, codigoIncorporadora,  ";
                dadosEditar += "codigoEmpreendimento, codigoTipoUnidadeEmpreendimento,  ";
                dadosEditar += "dataCadastroIvv, quantidadeVendaIvv, quantidadeLancamentoIvv,  ";
                dadosEditar += "quantidadeOfertasIvv, definicaoOutroEstagioObra, tipoTransporte,  ";
                dadosEditar += "quantidadeLancamentoVendaIvv,  ";

                dadosEditar += "(select nomeEmpreendimento from empreendimento  ";
                dadosEditar += "where empreendimento.codigoEmpreendimento = ivv.codigoEmpreendimento) as empreendimento,  ";

                dadosEditar += "(select bairro.codigoBairro from bairro, empreendimento  ";
                dadosEditar += "where empreendimento.codigoEmpreendimento = ivv.codigoEmpreendimento and  ";
                dadosEditar += "empreendimento.codigoBairro = bairro.codigoBairro) as bairro,  ";

                dadosEditar += "(select areaPrivativaTipoUnidadeEmpreendimento from tipoUnidadeEmpreendimento  ";
                dadosEditar += "where tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as Area, ";

                dadosEditar += "(select numeroQuartosTipoUnidadeEmpreendimento from tipoUnidadeEmpreendimento  ";
                dadosEditar += "where tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as quarto, ";

                dadosEditar += "(select numeroElevadoresTipoUnidadeEmpreendimento from tipoUnidadeEmpreendimento  ";
                dadosEditar += "where tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as elevador, ";

                dadosEditar += "(select numeroGarangensTipoUnidadeEmpreendimento from tipoUnidadeEmpreendimento  ";
                dadosEditar += "where tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as garagem, ";

                dadosEditar += "(select tempoFinanciamentoTipoUnidadeEmpreendimento from tipoUnidadeEmpreendimento  ";
                dadosEditar += "where tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as tempo, ";

                dadosEditar += "(select valorMedioMetroQuadradoTipoUnidadeEmpreendimento from tipoUnidadeEmpreendimento  ";
                dadosEditar += "where tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as valor,  ";

                dadosEditar += "(select estagioObra.codigoEstagioObra from estagioObra, tipoUnidadeEmpreendimento  ";
                dadosEditar += "where estagioObra.codigoEstagioObra = tipoUnidadeEmpreendimento.codigoEstagioObra and  ";
                dadosEditar += "tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as estagio, ";

                dadosEditar += "(select origemRecurso.codigoOrigemRecurso from origemRecurso, tipoUnidadeEmpreendimento  ";
                dadosEditar += "where origemRecurso.codigoOrigemRecurso = tipoUnidadeEmpreendimento.codigoOrigemRecurso and  ";
                dadosEditar += "tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento) as origem, ";

                dadosEditar += "(select situacaoImovel.codigoSituacaoImovel from situacaoImovel, tipoUnidadeEmpreendimento  ";
                dadosEditar += "where  tipoUnidadeEmpreendimento.codigotipoUnidadeEmpreendimento = ivv.codigotipoUnidadeEmpreendimento  ";
                dadosEditar += "and tipoUnidadeEmpreendimento.codigoSituacaoImovel =  ";
                dadosEditar += "situacaoImovel.codigoSituacaoImovel) as codigoSituacaoImovel ";

                dadosEditar += "FROM ivv where codigoIvv = " + Request["codigoIvv"].ToString();

                cmd = new SqlCommand(dadosEditar, sqlc);
                dr = cmd.ExecuteReader();

                if (dr.HasRows)
                {
                    dr.Read();

                    Session["codigoEmpreendimento"] = dr["codigoEmpreendimento"].ToString();
                    Session["codigoTipoUnidadeEmpreendimento"] = dr["codigoTipoUnidadeEmpreendimento"].ToString();
                    Session["codigoIvv"] = dr["codigoIvv"].ToString();
                    Session["codigoSituacaoImovel"] = dr["codigoSituacaoImovel"].ToString();

                    txtAreaResidencial1.Text = dr["Area"].ToString();
                    txtDescricao1.Text = dr["empreendimento"].ToString();
                    txtElevadorResidencial1.Text = dr["elevador"].ToString();
                    txtGaragemResidencial1.Text = dr["garagem"].ToString();
                    txtQuartoResidencial1.Text = dr["quarto"].ToString();
                    txtTempoFinanciamentoResidencial1.Text = dr["tempo"].ToString();
                    txtValorMedioResidencial1.Text = dr["valor"].ToString();

                    lstBairroResidencial1.SelectedValue = dr["bairro"].ToString();
                    lstOrigemRecurso1.SelectedValue = dr["origem"].ToString();
                    lstEstagioObra1.SelectedValue = dr["estagio"].ToString();

                    if (dr["codigoSituacaoImovel"].ToString() == "1")
                    {
                        txtQuantidadeResidencial1.Text = dr["quantidadeOfertasIvv"].ToString();
                    }
                    else if (dr["codigoSituacaoImovel"].ToString() == "2")
                    {
                        txtQuantidadeResidencial1.Text = dr["quantidadeLancamentoIvv"].ToString();
                    }
                    else if (dr["codigoSituacaoImovel"].ToString() == "3")
                    {
                        txtQuantidadeResidencial1.Text = dr["quantidadeVendaIvv"].ToString();
                    }
                    else
                    {
                        txtQuantidadeResidencial1.Text = dr["quantidadeLancamentoVendaIvv"].ToString();
                    }
                }

                dr.Close();

                sqlc.Close();
            }
        }

        protected void btnSalvarResidencial1_Click(object sender, EventArgs e)
        {
            SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlc.Open();

            string update = "update empreendimento set codigoBairro = " + lstBairroResidencial1.SelectedValue + ", nomeEmpreendimento = '" + txtDescricao1.Text + "' where codigoEmpreendimento = " + Session["codigoEmpreendimento"].ToString();

            SqlCommand cmd = new SqlCommand(update, sqlc);
            cmd.ExecuteNonQuery();

            update = "update tipoUnidadeEmpreendimento set areaPrivativaTipoUnidadeEmpreendimento = '" + txtAreaResidencial1.Text + "', numeroQuartosTipoUnidadeEmpreendimento = '" + txtQuartoResidencial1.Text + "', ";
            update += "numeroElevadoresTipoUnidadeEmpreendimento = '" + txtElevadorResidencial1.Text + "', codigoEstagioObra = " + lstEstagioObra1.SelectedValue + ", ";
            update += "codigoOrigemRecurso = " + lstOrigemRecurso1.SelectedValue + ", numeroGarangensTipoUnidadeEmpreendimento = '" + txtGaragemResidencial1.Text + "', tempoFinanciamentoTipoUnidadeEmpreendimento = '" + txtTempoFinanciamentoResidencial1.Text + "', ";
            update += "valorMedioMetroQuadradoTipoUnidadeEmpreendimento = '" + txtValorMedioResidencial1.Text + "' where codigoTipoUnidadeEmpreendimento = " + Session["codigoTipoUnidadeEmpreendimento"].ToString();

            cmd = new SqlCommand(update, sqlc);
            cmd.ExecuteNonQuery();

            if (Session["codigoSituacaoImovel"].ToString() == "1")
            {
                update = "update ivv set anoIvv = '" + DateTime.Now.Year + "', mesIvv = '" + DateTime.Now.Month + "', dataCadastroIvv = '" + DateTime.Now.ToString("dd/MM/yyyy") + "', quantidadeOfertasIvv = '" + txtQuantidadeResidencial1.Text + "' where codigoIvv = " + Session["codigoIvv"].ToString();
            }
            else if (Session["codigoSituacaoImovel"].ToString() == "2")
            {
                update = "update ivv set anoIvv = '" + DateTime.Now.Year + "', mesIvv = '" + DateTime.Now.Month + "', dataCadastroIvv = '" + DateTime.Now.ToString("dd/MM/yyyy") + "', quantidadeLancamentoIvv = '" + txtQuantidadeResidencial1.Text + "' where codigoIvv = " + Session["codigoIvv"].ToString();
            }
            else if (Session["codigoSituacaoImovel"].ToString() == "3")
            {
                update = "update ivv set anoIvv = '" + DateTime.Now.Year + "', mesIvv = '" + DateTime.Now.Month + "', dataCadastroIvv = '" + DateTime.Now.ToString("dd/MM/yyyy") + "', quantidadeVendaIvv = '" + txtQuantidadeResidencial1.Text + "' where codigoIvv = " + Session["codigoIvv"].ToString();
            }
            else
            {
                update = "update ivv set anoIvv = '" + DateTime.Now.Year + "', mesIvv = '" + DateTime.Now.Month + "', dataCadastroIvv = '" + DateTime.Now.ToString("dd/MM/yyyy") + "', quantidadeLancamentoVendaIvv = '" + txtQuantidadeResidencial1.Text + "' where codigoIvv = " + Session["codigoIvv"].ToString();
            }

            cmd = new SqlCommand(update, sqlc);
            cmd.ExecuteNonQuery();

            sqlc.Close();

            ScriptManager.RegisterStartupScript(this, this.GetType(), "redirect", "finalizar('Edição realizada com sucesso.'); window.opener.location.href = '" + Request.ApplicationPath + "ivvs/List.aspx'; window.close();", true);
        }
    }
}
